<?php
/**
 * BowlFramework Files
 * 
 * 这家伙太懒了，连注释都不写，鄙视他
 * 
 * @author armor
 * @date 13-7-11 下午6:22
 * 
 */

class Controller_Package extends Extension_Controller_FenderEngineBase{

    /**
     * 安装应用引擎
     * 1） 拷贝程序代码
     * 2）如有数据库，则创建数据文件
     * 3）需要生成一个友好的首页，应用首页里需要有返回到站点首页的链接
     *
     * @return bool
     */
    public function install(){
        $this->installProgramFiles($this->appPreviewDir);
        $this->installDB($this->appPreviewDir);
    }

    /**
     * 应用引擎升级
     *
     * @param $oldVersion 升级前版本
     */
    public function upgrade($oldVersion){

    }

    /**
     * 卸载应用
     * 在这里完成应用的卸载，目录的清除已由系统完成，应用引擎自己只需要完成数据库的清理
     */
    public function uninstall(){

    }


    /**
     * 安装数据表数据
     *
     * @param $destPath
     */
    private function installDB($destPath){
        $dbFileName = $destPath."/chatroom.db";
        new SQLite3($dbFileName);
        $db = new SQLite3($dbFileName);//连接数据库
        $sql = "CREATE TABLE if not exists 'user' (
            'user_id' integer PRIMARY KEY autoincrement,
            'phone'	TEXT NOT NULL,
            'password'	TEXT NOT NULL,
            'nickname'	TEXT NOT NULL,
            'sex'	INTEGER NOT NULL,
            'icon_path'	TEXT NOT NULL,
            'motto'	TEXT,
            'online' INTEGER NOT NULL
        );CREATE TABLE if not exists 'user_info' (
            'user_id' INTEGER PRIMARY KEY,
            'motto' TEXT,
            'age' INTEGER,
            'position' TEXT,
            'public' INTEGER
        )";
        $db->exec($sql);
        Service_PortalWriter::addFile2SVN($dbFileName);
    }

    /**
     * 安装程序文件
     *
     * @param $destPath
     */
    private function installProgramFiles($destPath){
        $boxAppPackDir = $this->appEngineBaseDir."/BoxAppPack/";
        Service_PortalWriter::copyDirectory($boxAppPackDir,$destPath);
    }
}